//
// Created by Snow on 2023/5/15.
//
//ShellSort排序算法
#include"seqlist.cpp"
void ShellSort(RecType R[],int n)
{
    int i,j,d;
    RecType temp;
    d=n/2;//增量置初值
    while(d>0)
    {
        for(i=d;i<n;i++)//对所有组采用直接插入排序
        {
            temp=R[i];//对相隔d个位置一组采用直接插入排序
            j=i-d;
            while(j>=0&&temp.key<R[j].key)
            {
                R[j+d]=R[j];
                j=j-d;
            }
            R[j+d]=temp;
        }
        d=d/2;//减小增量
    }
}
int main()
{
    int n=10;
    RecType R[MAXL];
    KeyType a[]={9,8,7,6,5,4,3,2,1,0};
    CreateList(R,a,n);
    DispList(R,n);
    ShellSort(R,n);
    DispList(R,n);
    return 1;
}